package leetcode.array;

import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

/**
 * leetCode 26
 *  Remove Duplicates from Sorted Array
 * 去重
 * 翻译：从有序数组中去除重复项
 * 思路：我们使用快慢指针来记录遍历的坐标，最开始时两个指针都指向第一个数字，如果两个指针指的数字相同，则快指针向前走一步，如果不同，则两个指针都向前走一步，这样当快指针走完整个数组后，慢指针当前的坐标加1就是数组中不同数字的个数

 */
public class Array26 {

    public static void main(String []args){
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        List<Integer> input = Arrays.stream(str.split(",")).map(i -> { return Integer.parseInt(i); }).collect(Collectors.toList());
        System.out.println(Arrays.toString(input.toArray()));
        Integer [] nums = input.toArray(new Integer[input.size()]);
        new Array26().removeDuplicates(nums);
    }
    public int removeDuplicates(Integer[] nums) {
        if (nums.length == 0) return 0;
        int pre = 0, cur = 0, n = nums.length;
        while (cur < n) {
            if (nums[pre] == nums[cur]) ++cur;
            else nums[++pre] = nums[cur++];
        }
        return pre + 1;
    }
}
